Software-defined networking (SDN) is an approach to cloud computing that facilitates network management and enables programmatically efficient network configuration in order to improve network performance and monitoring. SDN is meant to address the issue that the static architecture of traditional networks is decentralized and complex while current networks require more flexibility and troubleshooting. SDN centralizes network intelligence in one network component by disassociating the forwarding process of network packets (i.e., the data plane) from the routing process (i.e., the control plane). The control plane comprises one or more controllers that are considered to be the brain of an SDN network where the intelligence is incorporated.